// pages/detail/detail.js
import http from '../../utils/http'
import storage from '../../utils/storage'
// getApp 获取小程序实例的方法 仔细点就是app.js中的内容
let app = getApp() 
// console.log(app);
Page({

  /**
   * 页面的初始数据
   */
  data: {
    detail: {},
    address: '请选择收货地址',
    active: 0,
    num: 0
  },

  // 获取详情数据
  async getDetail(id) {
    let { message } = await http({url: '/public/v1/goods/detail?goods_id=' + id})
    this.setData({
      detail: message
    })
  },

  // 点击图片进行图片预览
  previewImage(e) {
    // let arr = []
    // this.data.detail.pics.forEach(item => {
    //   arr.push(item.pics_mid)
    // })
    // map循环方法有返回值 会将循环返回的数据放在一个新数组中
    wx.previewImage({
      urls: this.data.detail.pics.map(item => item.pics_mid),
      current: e.currentTarget.dataset.img
    })
  },

  // 选择收获地址
  choseAddress() {
    wx.chooseAddress({
      success: (res) => {
        // console.log(res);
        // console.log(this);
        this.setData({
          address: res.provinceName + res.cityName + res.countyName + res.detailInfo
        })
      },
    })
  },
  // 加入购物车按钮点击事件
  addGood() {
    let obj = {
      id: this.data.detail.goods_id,
      name: this.data.detail.goods_name,
      price: this.data.detail.goods_price,
      check: false,
      num: 1,
      img: this.data.detail.goods_small_logo
    }
    // app.globalData.goods.push(obj)
    // console.log(app);
    // 判断全局数据中是否包含当前数据find方法如果数组中能够找到满足条件的数据 就会返回第一个满足条件的数据
    // 否则返回undefined
    let ind = app.globalData.goods.find((item) => item.id === obj.id)
    // console.log(ind);
    if(ind) { // 如果id是有值的证明数据重复
      ind.num++
    } else {
      app.globalData.goods.push(obj)
    }
    wx.showToast({
      title: '加入购物车成功',
      duration: 1000
    })
    // console.log(app);
    storage(app.globalData.goods)
  },

  // 计算商品数量的逻辑
  calcNum() {
    let count = 0
    // console.log(app.globalData.goods);
    app.globalData.goods.forEach(item => {
      count += item.num
    })
    this.setData({
      num:count
    })
  },

  // 点击购物车进入购物车页面
  goCart() {
    wx.switchTab({
      url: '/pages/cart/cart',
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log(options);
    this.getDetail(options.id)
    this.calcNum()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.calcNum()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})